Drop, add or set the direction of a directed arc or an undirected arc (also known as edge).
# arc operations.
set.arc(x, from, to, check.cycles = TRUE, check.illegal = TRUE, debug = FALSE)
drop.arc(x, from, to, debug = FALSE)
reverse.arc(x, from, to, check.cycles = TRUE, check.illegal = TRUE, debug = FALSE)# edge (i.e. undirected arc) operations
set.edge(x, from, to, check.cycles = TRUE, check.illegal = TRUE, debug = FALSE)
drop.edge(x, from, to, debug = FALSE)
an object of class bn.
a character string, the label of a node.
a character string, the label of another node.
a boolean value. If TRUE the graph is tested for
acyclicity; otherwise the graph is returned anyway.
a boolean value. If TRUE arcs that break the
parametric assumptions of x, such as those from continuous to
discrete nodes in conditional Gaussian networks, cause an error.
a boolean value. If TRUE a lot of debugging output is
printed; otherwise the function is completely silent.
All functions return invisibly an updated copy of x.
The set.arc function operates in the following way:
if there is no arc between from and to, the arc
from \(\rightarrow\) to is added.
if there is an undirected arc between from and to, its
direction is set to from \(\rightarrow\) to.
if the arc to \(\rightarrow\) from is present,
it is reversed.
if the arc from \(\rightarrow\) to is present, no
action is taken.
The drop.arc function operates in the following way:
if there is no arc between from and to, no action is
taken.
if there is a directed or an undirected arc between from and
to, it is dropped regardless of its direction.
The reverse.arc function operates in the following way:
if there is no arc between from and to, it returns an
error.
if there is an undirected arc between from and to, it
returns an error.
if the arc to \(\rightarrow\) from is present, it
is reversed.
if the arc from \(\rightarrow\) to is present, it
is reversed.
The set.edge function operates in the following way:
if there is no arc between from and to, the undirected
arc from - to is added.
if there is an undirected arc between from and to, no
action is taken.
if either the arc from \(\rightarrow\) to or the
arc to \(\rightarrow\) from are present, they are
replaced with the undirected arc from - to.
The drop.edge function operates in the following way:
if there is no undirected arc between from and to, no
action is taken.
if there is an undirected arc between from and to, it
is removed.
if there is a directed arc between from and to, no
action is taken.
data(learning.test)
res = gs(learning.test)
## use debug = TRUE to get more information.
set.arc(res, "A", "B")
drop.arc(res, "A", "B")
drop.edge(res, "A", "B")
reverse.arc(res, "A", "D")
Run the code above in your browser using DataLab